package com.wing.platform.storage.request;

import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.List;

/**
 * 出/入库计划单记录Form
 *
 * @author
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class InventoryInoutPlanForm {

    /**
     * ID
     */
    private Long id;

    /**
     * 创建者
     */
    private Long creator;

    /**
     * 修改者
     */
    private Long modifier;

    /**
     * 创建人
     */
    private String creatorName;

    /**
     * 修改人
     */
    private String modifierName;

    /**
     * 入库计划编号
     */
    private String code;
    /**
     * 序号(编号生成用)
     */
    private Integer no;

    /**
     * 日期(编号生成用)
     */
    private Integer day;

    /**
     * 企业编号
     */
    private String enterpriseCode;

    /**
     * 采购供应商ID（生产制造厂商）
     */
    private Long settledCompanyId;

    /**
     * 业务类型ID
     */
    private Long warehouseInventoryTypeId;

    /**
     * 业务类型code
     */
    private String warehouseInventoryTypeCode;

    /**
     * 业务类型对应订单编码
     */
    private String inventoryTypeOrderCode;
    /**
     * 物流快递企业ID
     */
    private Long transportCompanyId;

    /**
     * 物流单号
     */
    private String logisticsNo;

    /**
     * 集装箱编码
     */
    private String containerCode;

    /**
     * 车牌号
     */
    private String plateNo;

    /**
     * 联系人
     */
    private String contacts;

    /**
     * 电话
     */
    private String phone;

    /**
     * 仓库所在省
     */
    private Long province;

    /**
     * 省名字
     */
    @TableField(exist = false)
    private String provinceName;

    /**
     * 仓库所在市
     */
    private Long city;

    /**
     * 城市名字
     */
    @TableField(exist = false)
    private String cityName;

    /**
     * 仓库id
     */
    private Long warehouseId;

    /**
     * 仓库名称
     */
    private String warehouseName;

    /**
     * 入库计划备注
     */
    private String remark;

    /**
     * 入库计划总金额
     */
    private BigDecimal totalAmount;

    /**
     * 入库计划总数量
     */
    private Integer totalQuantity;

    /**
     * 产品类型枚举编号
     */
    private String typeEnumCode;

    /**
     * 入库计划业务扩展属性表ID
     */
    private Long planExtId;

    /**
     * 入库计划明细集合
     */
    @TableField(exist = false)
    private List<InventoryInoutPlanDetailForm> detailList;

    /**
     * 数据来源(判断是否为自身数据)
     */
    @TableField(exist = false)
    private String dataSource;


    public interface Add{}

    public interface Update{}

    /**
     * 产品SKU编码
     */
    private String skuCode;

    /**
     * 包装ID
     */
    private Long productPackId;

    /**
     * 批次码
     */
    private String batchCode;

    /**
     * 主板类型ID
     */
    private Long motherboardTypeId;

    /**
     * 控制面板类型ID
     */
    private Long controlTypeId;

    /**
     * 升降主板类型ID
     */
    private Long hostTypeId;

    /**
     * 包装方案ID
     */
    private Long packId;

}
